# 编译器设置
CC ?= arm-poky-linux-gnueabi-gcc
AR ?= arm-poky-linux-gnueabi-ar
CFLAGS := -O2 -I./inc -I./src
ARFLAGS := rcs

# 目录设置
SRC_DIR := src
OBJ_DIR := obj
LIB_DIR := lib

# 静态库名称
LIB_NAME := librpmbctl.a

# 源文件列表（自动获取src下所有.c文件）
SRCS := $(wildcard $(SRC_DIR)/*.c)
# 目标文件列表（.c替换为.o，并加上obj前缀）
OBJS := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))
# 头文件列表（用于依赖跟踪）
HEADERS := $(wildcard inc/*.h) $(wildcard src/*.h)

# 默认目标：编译静态库
all: $(LIB_DIR)/$(LIB_NAME)

# 确保目录存在
$(shell mkdir -p $(OBJ_DIR) $(LIB_DIR))

# 生成静态库
$(LIB_DIR)/$(LIB_NAME): $(OBJS)
	$(AR) $(ARFLAGS) $@ $^
	@echo "[AR]  Built $@"

# 通用编译规则（含头文件依赖）
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HEADERS)
	$(CC) $(CFLAGS) -c $< -o $@
	@echo "[CC]  Compiled $< -> $@"

# 清理
clean:
	rm -rf $(OBJ_DIR) $(LIB_DIR)
	@echo "Clean complete"

.PHONY: all clean